/*
 * 基础弹框类
 * 用于输出提示数据
 * @author：黄
 */
'use strict'
// 此处使用elementui的弹框
const Element = require('element-ui')
// require('element-ui/lib/theme-chalk/index.css')
// import 'element-ui/lib/theme-chalk/index.css' 后期用es6实现完全解耦
class Layer {
    constructor() {
        this.loading = null
    }

    /*
     * 成功提示
     */
    success(info) {
        Element.Message.success({
            showClose: true,
            message: info,
            type: 'success'
        })
    }

    /*
     * 错误提示
     */
    error(info) {
        Element.Message.error({
            showClose: true,
            message: info,
            type: 'error'
        })
    }

    /*
     * 全局loading
     * 开启
     */
    openLoading() {
        this.loading = Element.Loading.service({
            lock: true,
            text: 'Loading',
            spinner: 'el-icon-loading',
            background: 'rgba(0, 0, 0, 0.7)'
        })
    }

    /*
     * 全局loading
     * 关闭
     */
    closeLoading() {
        this.loading.close()
    }

    /*
     * confirm
     */
    confirm(str, fun) {
        Element.MessageBox.confirm(str, '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning'
        }).then(() => {
            fun()
        }).catch(() => {})
    }

    /*
     * prompt
     */
    prompt(tips, fun) {
        Element.MessageBox.prompt(tips, '提示', {
            confirmButtonText: '确定',
            cancelButtonText: '取消'
        }).then(({ value }) => {
            // 和后端交互
            if (value) fun(value)
        }).catch(() => {})
    }
}

module.exports = new Layer